<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>javascript 阶段</title>
</head>
<body>

    <h3>数组操作（二）</h3>
    <!-- 内置函数 -->
    <!-- 自定义函数 （都没有return）-->
    

    <script>
        // [调用者，参数，返回值，功能]

        // 调用者： 数组 
        // （ 影响原来的数组 ）
        // 参数：1.索引值， 2.删除多少个（数量）
        // 返回值：数组， 被删除的数据包含在数组中
        // 功能：删除数组指定位置的数据，以及返回这个被删除的数据数组
        // splice()
        var arr = ["red","green","blue","小明","小红","小米"];
                //  0      1       2      3      4    5
        
        var res = arr.splice(2,2);
        // console.log(res);// ["blue","小明"]    被删除的数据数组
        // console.log(arr);// ["red","green","小红","小米"]  原数组

        
        // 参数：1.索引值 , 2. 被删除的数量  3.插入数据(填充数据)
        // 返回值： 数组， 被删除的数据包含在数组中
        // 功能： 删除数组指定位置的数据，还可以插入数据，并且返回被删除的数据数组
        var arr2 = ["red","green","blue","小明","小红","小米"];
                    //  0      1       2      3      4     5

        var res2 = arr2.splice(2,2,"蓝色","小小");
        // console.log(res2);//["blue", "小明"]
        // console.log(arr2);// ["red", "green", "蓝色", "小小", "小红", "小米"]
        


        // slice()
        //（不会影响原数组）
        // 参数： 1.0 开始索引值 ， 如果是负数，从数组末端（length-1）进行截取
        // 返回值：数组，从数组中指定位置截取出来的数据
        // 功能： 截取数组中指定位置的数据
        var arr3 = ["red","green","blue","小明","小红","小米"];
                   //  0      1       2      3      4     5
        console.log(arr3);// ["red", "green", "blue", "小明", "小红", "小米"]
        console.log(arr3.slice(3));// ["小明", "小红", "小米"]
        console.log(arr3.slice(-1));// ["小米"]

        // 参数2：1.0 开始索引值  2.0 结束索引值 ; (包左不包右)
        console.log(arr3.slice(0,2)); // ["red", "green"]
        console.log(arr3.slice(3,5));// ["小明","小红"]




        // join()

        // concat()

        // sort()







        
        // 以下为自定义的函数：
        // 返回值：没有编写return 的情况下
        // 切记：函数作用域中的数据，想在函数作用域外使用，那么就需要用到return;
        // function foo(){
        //     var x = 10;
        //     var y = 20;
        //     var res = x + y;
        // }
        // var total = foo();
        // console.log(total);// undefined

        // function foo(){
        //     var x = 10;
        //     var y = 20;
        //     var res = x + y;
        //     return res;
        // }
        // var total = foo();
        // console.log(total);// 30


    </script>
</body>
</html>